# the minimum version of CMake.
cmake_minimum_required(VERSION 3.10)
project(videoCodecSample)

set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_CXX_STANDARD 17)
add_compile_definitions(-DOHOS_PLATFORM)
add_compile_definitions(-DEGL_EGLEXT_PROTOTYPES)

include_directories(${NATIVERENDER_ROOT_PATH}
                    ${NATIVERENDER_ROOT_PATH}/capbilities/include
                    ${NATIVERENDER_ROOT_PATH}/capbilities/audio_format_converter/resample/include
                    ${NATIVERENDER_ROOT_PATH}/common
                    ${NATIVERENDER_ROOT_PATH}/common/dfx/err
                    ${NATIVERENDER_ROOT_PATH}/common/dfx/log
                    ${NATIVERENDER_ROOT_PATH}/render/include
                    ${NATIVERENDER_ROOT_PATH}/sample/player
                    ${NATIVERENDER_ROOT_PATH}/sample/recorder
                    ${NATIVERENDER_ROOT_PATH}/sample/videoEditor
)

set(BASE_LIBRARY
    libace_napi.z.so libEGL.so libGLESv3.so libace_ndk.z.so libuv.so libhilog_ndk.z.so libvideo_processing.so libimage_processing.so
    libnative_media_codecbase.so libnative_media_core.so libnative_media_vdec.so libnative_window.so
    libnative_media_venc.so libnative_media_acodec.so libnative_media_avdemuxer.so libnative_media_avsource.so
    libnative_media_avmuxer.so libohaudio.so libnative_buffer.so libnative_vsync.so libnative_image.so libohcamera.so
)
add_library(player SHARED sample/player/PlayerNative.cpp
                          sample/player/Player.cpp
                          capbilities/Demuxer.cpp
                          capbilities/VideoDecoder.cpp
                          capbilities/AudioDecoder.cpp
                          render/PluginRender.cpp
                          render/PluginManager.cpp
                          common/SampleCallback.cpp
                          sample/videoEditor/av_decoder_engine.cpp
                          sample/videoEditor/av_decoder_engine_impl.cpp
                          sample/videoEditor/av_encoder_engine.cpp
                          sample/videoEditor/pcm_buffer_queue.cpp

#                          sample/recorder/RecorderNative.cpp
#                          sample/recorder/Recorder.cpp
                          capbilities/Muxer.cpp
                          capbilities/VideoEncoder.cpp
                          capbilities/AudioCapturer.cpp
                          capbilities/AudioEncoder.cpp
                          common/SampleCallback.cpp
                          render/egl_render_context.cpp
                          render/render_thread.cpp
                          render/shader_program.cpp
                          capbilities/audio_format_converter/resample/src/audio_proresampler_process.c
                          capbilities/audio_format_converter/resample/src/audio_proresampler.cpp
                          capbilities/video_process.cpp
)

add_library(recorder SHARED sample/recorder/RecorderNative.cpp
                            sample/recorder/Recorder.cpp
                            capbilities/Muxer.cpp
                            capbilities/VideoEncoder.cpp
                            capbilities/AudioCapturer.cpp
                            capbilities/AudioEncoder.cpp
                            common/SampleCallback.cpp
                            render/egl_render_context.cpp
                            render/render_thread.cpp
                            render/shader_program.cpp
                            sample/videoEditor/av_encoder_engine.cpp
                            sample/videoEditor/pcm_buffer_queue.cpp
)

target_link_libraries(player PUBLIC ${BASE_LIBRARY})
target_link_libraries(recorder PUBLIC ${BASE_LIBRARY})